package com.example.chuzhou.util;

import com.lx.saas.core.Sender;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

@SuppressWarnings("all")
@Slf4j
@Component
public class LogUtil {

    private static Sender sender;

//    @Autowired
//    private Sender senderTemp;
//
//    @PostConstruct
//    public void init() {
//        sender = senderTemp;
//    }

    /**
     * 发送日志到kafka
     *
     * @param request  客户端请求
     * @param funcCode 子模块编码
     * @param operType 操作类型
     * @param params   参数
     * @param operUrl  url
     * @param userId   id
     * @throws Exception 异常类型
     */
    public static void sendLog(HttpServletRequest request,
                               String funcCode,
                               String operType,
                               Object params,
                               String operUrl,
                               String userId) throws Exception {
//
//        //构建日志实体
//        LogDTO logDto = new LogDTO.Builder()
//                .clientId("94e3d6f1-100a-405a-8c04-910874639e39")
//                .appName("unifiedPortal")   //统一认证
//                .funcCode(funcCode) //操作中文名
//                .operTime(System.currentTimeMillis()) //操作时间
//                .operResultTime(System.currentTimeMillis()) //响应时间
//                .operType(operType) // 操作类型 login、logout、add、query、update、delete
//                .operParam(JSONObject.toJSONString(params)) //参数
//                .operUrl(operUrl)   //url
//                .operResult("0")
//                .logType("3")   //接口访问日志
//                .logLevel("info") // 日志级别info 、warn、error
//                .errorCode("200")
//                .clientIp(request.getHeader("X-Real-IP"))//操作主体所在的ip地址
//                .userId(userId) //id
//                .build();
//        // 发送日志
//        sender.sendLogAsync(logDto, (metadata, exception) -> {
//            if (exception != null) {
//                log.info(String.valueOf(exception));
//                log.info("消息发送失败-" + metadata.topic() + "-" + funcCode);
//            } else {
//                log.info("消息发送成功-" + metadata.topic() + "-" + funcCode);
//            }
//        });
    }

}
